﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace RAMED
{
    public partial class RechercheCarteUrgentForm : Form
    {

        public List<Carte_urgent> RechercheCarteurgent = new List<Carte_urgent>();
       RAMEDEntities1 context = SingletonContext.GetContext();
        
        public RechercheCarteUrgentForm()

           
        {
            InitializeComponent();
            
            comboBoxannexe.DataSource = context.Annexe_administratif;
            comboBoxannexe.DisplayMember = "nom_annexe_administratif";
            comboBoxannexe.SelectedItem = null;
        }

        private void RechercheCarteUrgentForm_Load(object sender, EventArgs e)
        {

        }
        


        private void remplirDataGridView()
        {

            dataGridViewcarteurgent.AutoGenerateColumns = false;
            dataGridViewcarteurgent.ColumnCount = 6;

            dataGridViewcarteurgent.Columns[0].HeaderText = "Nom";
            dataGridViewcarteurgent.Columns[0].DataPropertyName = "Nom";

            dataGridViewcarteurgent.Columns[1].HeaderText = "Prénom";
            dataGridViewcarteurgent.Columns[1].DataPropertyName = "prénom";


            dataGridViewcarteurgent.Columns[2].HeaderText = "Num de demande";
            dataGridViewcarteurgent.Columns[2].DataPropertyName = "Num_demande";

            dataGridViewcarteurgent.Columns[3].HeaderText = "Cin";
            dataGridViewcarteurgent.Columns[3].DataPropertyName = "Cin";

            dataGridViewcarteurgent.Columns[4].HeaderText = "Date de declaration";
            dataGridViewcarteurgent.Columns[4].DataPropertyName = "date_declaration";

            dataGridViewcarteurgent.Columns[5].HeaderText = "Annexe Administratif";
            dataGridViewcarteurgent.Columns[5].DataPropertyName = "Annexe_administratif";

            dataGridViewcarteurgent.DataSource = RechercheCarteurgent;
        }

        public void mettreAjourFormGridView()
        {
            dataGridViewcarteurgent.DataSource = null;
            remplirDataGridView();
            dataGridViewcarteurgent.Update();
            dataGridViewcarteurgent.Refresh();
        }
        private void btnrechercher_Click(object sender, EventArgs e)
        {
            RAMEDEntities1 context = SingletonContext.GetContext();
            List<Carte_urgent> LesCartesurgent = new List<Carte_urgent>();
            LesCartesurgent = context.Carte_urgent.ToList<Carte_urgent>();

            if (comboBoxannexe.SelectedItem != null)
            {
                Annexe_administratif annexeadministrative = new Annexe_administratif();
                annexeadministrative = (Annexe_administratif)comboBoxannexe.SelectedValue;
                LesCartesurgent = LesCartesurgent.Where(p => p.id_annexe_administratif == annexeadministrative.id_annexe_administratif).ToList<Carte_urgent>();

            }
            if (!txtcin.Text.Trim().Equals(""))
            {

               
                LesCartesurgent = LesCartesurgent.Where(p => p.CIN.Equals(txtcin.Text)).ToList<Carte_urgent>();

            }
            if (!txtnom.Text.Trim().Equals(""))
            {

               
                LesCartesurgent = LesCartesurgent.Where(p => p.Nom.ToUpper().Equals(txtnom.Text.ToUpper())).ToList<Carte_urgent>();

            }
            if (!txtprenom.Text.Trim().Equals(""))
            {

                LesCartesurgent = LesCartesurgent.Where(p => p.prénom.ToUpper().Equals(txtprenom.Text.ToUpper())).ToList<Carte_urgent>();

            }

            if (!txtnumdemande.Text.Trim().Equals(""))
            {
         
                LesCartesurgent = LesCartesurgent.Where(p => p.Num_demande.ToUpper().Equals(txtnumdemande.Text.ToUpper())).ToList<Carte_urgent>();
            }

            if (checkBoxdatedeclaration.Checked)
            {
                
               LesCartesurgent = LesCartesurgent.Where(c => c.date_declaration.Value.Date >= dateTimedeclaration.Value.Date).ToList();
            }

            if (radiobtnoui.Checked)
            {

                LesCartesurgent = LesCartesurgent.Where(p => p.Recu.Equals(true)).ToList<Carte_urgent>();

            }
            if (radiobtnnon.Checked)
            {

                LesCartesurgent = LesCartesurgent.Where(p => p.Recu.Equals(false)).ToList<Carte_urgent>();

            }

            RechercheCarteurgent = LesCartesurgent;

            mettreAjourFormGridView();
        }

        private void btnmodifier_Click(object sender, EventArgs e)
        {

            if (dataGridViewcarteurgent .CurrentRow == null)
            {
                NotificationTest.NotificationManager nm = new NotificationTest.NotificationManager();
                nm.Show(this, "Veuillez sélectionner un enregistrement pour le modifier", Color.Red, 3000);
            }
            else
            {

                ModifierCarteUrgentForm mcu = new ModifierCarteUrgentForm();
               

                Carte_urgent carte = ((Carte_urgent)dataGridViewcarteurgent.CurrentRow.DataBoundItem);

                mcu.Carte = carte;
                mcu.recherchecarteurgent = this;
                mcu.InitialiserChamps();
                mcu.Show();
            }
        }

        private void txtrecevoir_Click(object sender, EventArgs e)
        {
            if (dataGridViewcarteurgent.CurrentRow == null)
            {
                NotificationTest.NotificationManager nm = new NotificationTest.NotificationManager();
                nm.Show(this, "Veuillez sélectionner un enregistrement pour recevoir ", Color.Red, 3000);
            }
            else
            {
                RAMEDEntities1 context = SingletonContext.GetContext();
                Carte_urgent cu = new Carte_urgent();
                int id_carte_urgent = ((Carte_urgent)dataGridViewcarteurgent.CurrentRow.DataBoundItem).id_carte_urgent;
                cu = context.Carte_urgent.Where(d => d.id_carte_urgent == id_carte_urgent).First();
                cu.Recu = true;
                
                context.SaveChanges();
                mettreAjourFormGridView();
               
            }
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            this.Dispose();
        }

        private void Button21_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }
    }
}
